package com.fzkj.project.entiy;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fzkj.common.annotation.Excel;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.beans.IntrospectionException;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 用户管理对象 pro_user
 *
 * @author zhangmx
 * @date 2024-05-10
 */
@Data
public class ProUser {
    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 学校同步id
     */
    private String universityId;

    /**
     * uniId
     */
    @Excel(name = "uniId")
    private String uniId;

    /**
     * openID
     */
    @Excel(name = "openID")
    private String openId;

    /**
     * openId2
     */
    @Excel(name = "openId2")
    private String openId2;

    /**
     * 学院ID
     */
    @Excel(name = "学院ID")
    private String xyId;

    /**
     * 学校ID
     */
    @Excel(name = "学校ID")
    private String xxId;

    /**
     * 专业ID
     */
    @Excel(name = "专业ID")
    private String zyId;

    /**
     * 年级ID
     */
    @Excel(name = "年级ID")
    private String njId;

    /**
     * 班级ID
     */
    @Excel(name = "班级ID")
    private String clId;

    /**
     * 昵称
     */
    @Excel(name = "昵称")
    private String nickName;

    /**
     * 头像
     */
    @Excel(name = "头像")
    private String userImage;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String phone;

    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String name;

    /**
     * 学号
     */
    @Excel(name = "学号")
    private String stNumber;

    /**
     * 密码
     */
    @Excel(name = "密码")
    private String password;

    private String sex;

    private String xxName;

    private String xyName;

    private String zyName;

    private String zjName;

    private String njName;

    private String bjName;

    /**
     * 最好劳动节分
     */
    private int maxPoints;

    /**
     * 基础/劳动积分
     */
    private int userPoints;

    private int userJcldPoints;

    //积分
    /**
     * 总结报告积分
     */
    private int userldzjPoints;

    /**
     * 社会公益劳动
     */
    private int userldgyPoints;

    /**
     * 劳动成果
     */
    private int userldcgPoints;

    private int usersjcgPoints;

    private int userllPoints;

    //成绩
    private BigDecimal userldzjCj;

    //成绩
    private BigDecimal userldgyCj;

    private BigDecimal userldcgCj;

    private BigDecimal userjcldCj;

    private BigDecimal userllCj;


    private int countPoints;


    //完成情况
    /**
     * 基础劳动完成进度 1未 2已完成
     */
    private int jcldJdCount;

    private int ldzjJdCount;

    private int ldgyJdCount;

    private int ldcgJdCount;

    /**
     * 总进度是否完成
     */
    private int jdCount;

    //进度

    private BigDecimal jcldJdPer;

    private BigDecimal ldzjJdPer;

    private BigDecimal ldgyJdPer;


    private BigDecimal ldcgJdPer;

    /**
     * 理论成绩进度
     */
    private BigDecimal llcjJdPer;


    private BigDecimal jdPer;

    /**
     * 实践总成绩/进度
     */
    private BigDecimal countSjPer;

    /**
     * 理论总成绩/进度
     */
    private BigDecimal countLLPer;

    /**
     * 总成绩/总进度
     */
    private BigDecimal countPer;

    /**
     * 总成绩
     */
    private BigDecimal countCj;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    private String code;

    private String passwordNew;

    private String token;

    private String search;

    private Integer page;

    private Integer num;

    private String isSort;

    private String sortType;


    /**
     * 学号或姓名
     */
    private String stNumberOrName;


    private BigDecimal userLdCj;


    private List<String> bjIds;

    private BigDecimal dfCount;

    private Long rank;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("userId", getUserId())
                .append("uniId", getUniId())
                .append("openId", getOpenId())
                .append("openId2", getOpenId2())
                .append("xyId", getXyId())
                .append("xxId", getXxId())
                .append("zyId", getZyId())
                .append("njId", getNjId())
                .append("clId", getClId())
                .append("nickName", getNickName())
                .append("userImage", getUserImage())
                .append("phone", getPhone())
                .append("name", getName())
                .append("stNumber", getStNumber())
                .append("password", getPassword())
                .append("createTime", getCreateTime())
                .toString();
    }
}
